home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)tk.d64 / mortgage.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  3KB  |  102 lines

  1. 100 DIMM$(12),Z$(12):FORI=1TO12:READM$(I):NEXTI:N=0:POKE53281,1
  2. 110 PRINTCHR$(147);:GOTO930
  3. 120 REM * VERSATILE MORTGAGE CALCULATOR *
  4. 130 REM * BY JIM BUTTERFIELD *
  5. 140 REM * TPUG MAGAZINE. MARCH 1985 *
  6. 150 REM * MODIFIED BY GERRY PENROSE *
  7. 160 REM * MAY 1985 *
  8. 170 REM * N$=" NAME   ":I1=RATE:A1=AMNT :Y=NO PYMTS:Z$=" MONTH ":Y3= YEAR
  9. 180 REM * LINES 170 AND 190(null)CAN BE USED TO PERMANENTLY PLACE DATA *
  10. 190 REM * P1=427:N1=12 *
  11. 200 PRINT"[147]"
  12. 210 N1=12:Z$=Z$:Y=12:GOSUB870
  13. 220 PRINT"[145][205]ORTGAGE: ";N$
  14. 230 REM: PRINT"[193]NNUAL RATE (%):";I1
  15. 240 I=(1+I1/200)^(1/6)-1:REM CANADIAN CALCULATION
  16. 250 A=INT(A1*100+.5)
  17. 260 PRINT"[193]MOUNT AT START:";A1;"[157]  - ";"@";I1;"%"
  18. 270 PRINT"[206]UMBER OF PAYMENTS:"Y
  19. 280 PRINT"[205]ONTH OF FIRST PAYMENT: (JAN)";Z$;:IFLEN(Z$)<3THENSTOP
  20. 290 FORJ=1TO1:NEXTJ:PRINTY3
  21. 300 P=INT(P1*100+.5)
  22. 310 PRINT"[158][208] TO [208]RINT. [211] TO [211]TOP. [211]PACE TO [196]ISPLAY ";
  23. 320 PRINT"[146][154]";
  24. 330 GETG$:IFG$=""GOTO330
  25. 340 IFASC(G$)=83THENEND
  26. 350 P9=0:IFASC(G$)=80THENP9=4:OPEN4,P9:Q$=CHR$(17):PRINT#4,Q$;"";N$
  27. 360 PRINT"  [194]ALANCE="A/100;"@"I1;"% ";Z$;Y3;"          "
  28. 370 IFP9THENPRINT#4:PRINT#4,Q$"[194]ALANCE=     ";A/100;"  @  ";I1;"% ";M$;Y3
  29. 380 I3=0:P3=0
  30. 390 PRINT"[145]  [205]TH [201]NTEREST  [208]AYMENT   [194]ALANCE"
  31. 400 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
  32. 410 PRINT"[145]";:IFP9THENPRINT#4
  33. 420 IFP9THENPRINT#4,Q$;"[205]TH          [201]NTEREST     [208]AYMENT             [194]ALANCE"
  34. 430 IFP9THENPRINT#4
  35. 440 REM ******************************
  36. 450 I2=INT(I*A+.5):IFP>A+I2THENP=A+I2
  37. 460 I3=I3+I2:P3=P3+P:A=A+I2-P
  38. 470 M$=CHR$(ASC(M$(N))+128)+MID$(M$(N),2):PRINTTAB(2)M$;
  39. 480 IFP9THENPRINT#4,Q$;TAB(4)M$;"         ";
  40. 490 X=I2:GOSUB720:IFP9THENPRINT#4,"      ";
  41. 500 X=P:GOSUB720:IFP9THENPRINT#4,"             ";
  42. 510 X=A:GOSUB710:PRINT:IFP9THENPRINT#4
  43. 520 N1=N1-1:IFN1=0THENGOTO580:P=INT(P1*100+.5)
  44. 530 Y=Y-1:N=N+1
  45. 540 IFN<13ANDY>0ANDA>0GOTO450
  46. 550 REM *******************************
  47. 560 IFY=0ORA<=0GOTO580
  48. 570 Y3=Y3+1:N=1:GOTO450
  49. 580 PRINT:PRINT:IFP9THENPRINT#4:PRINT#4
  50. 590 PRINTTAB(2)"TOT INT. ";"TO DATE";
  51. 600 IFP9THENPRINT#4,Q$;TAB(2)"[212]OTAL [201]NT. TO DATE     ";
  52. 610 Z=I3+Z:GOSUB640:IFP9THENPRINT#4
  53. 620 IFP9THENPRINT#4:GOTO700
  54. 630 GOTO700
  55. 640 L=8
  56. 650 A$=RIGHT$(S$+STR$(INT(Z)),L)
  57. 660 IFZ=0THENA$=RIGHT$(S$+"00",L)
  58. 670 Y$=LEFT$(A$,LEN(A$)-2)+"."+RIGHT$(A$,2)
  59. 680 PRINTTAB(3)Y$;"   ";:IFP9THENPRINT#4,Y$;
  60. 690 RETURN
  61. 700 CLOSE4:GOTO 780
  62. 710 L=10:GOTO730
  63. 720 L=8
  64. 730 A$=RIGHT$(S$+STR$(INT(X)),L)
  65. 740 IFX=0THENA$=RIGHT$(S$+"00",L)
  66. 750 X$=LEFT$(A$,LEN(A$)-2)+"."+RIGHT$(A$,2)
  67. 760 PRINTX$;"   ";:IFP9THENPRINT#4,X$;
  68. 770 RETURN
  69. 780 POKE646,0:PRINT"[159][212]O [193]DD [208]AYMENTS [208]RESS [193].- [195] TO CONTINUE [146] "
  70. 790 PRINT"[154]"
  71. 800 GETA$:IFA$=""THEN800
  72. 810 IFA$="A"THENPRINTCHR$(147):INPUT"[201]NPUT AMMOUNT TO ADD  ";B
  73. 820 A1=X/100-B:Z$=Z$
  74. 830 CLOSE4:GOTO200
  75. 840 IFA$="C"THENCLOSE4:N1=12:Z$=Z$:Y=12:GOTO200
  76. 850 DATA JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
  77. 860 END
  78. 870 M=127:M1=ASC(Z$)ANDM:M2=ASC(MID$(Z$,2))ANDM:M3=ASC(MID$(Z$,3))ANDM
  79. 880 Z$=CHR$(M1)+CHR$(M2)+CHR$(M3)
  80. 890 FORJ=1TO12:IFZ$=M$(J)GOTO910
  81. 900 NEXTJ
  82. 910 N=J
  83. 920 RETURN
  84. 930 GOSUB1040
  85. 940 INPUT"NAME";N$
  86. 950 INPUT"RATE";I1
  87. 960 INPUT"AMOUNT";A1
  88. 970 INPUT"NO OF PAYMENTS";Y
  89. 980 INPUT"STARTING MONTH";Z$
  90. 990 INPUT"STARTING YEAR";Y3
  91. 1000 INPUT"MONTHLY PAYMENT";P1
  92. 1010 INPUT"NO PERIODS BEFORE REDUCING";N1
  93. 1020 PRINT"":
  94. 1030 Z$=Z$:N1=12:Y=12:GOTO200
  95. 1040 POKE214,12:PRINT
  96. 1050 POKE211,10:PRINT"[158]PLEASE READ THIS"
  97. 1060 PRINT:PRINT"[158]NUMBER OF PAYMENTS SHOULD ALWAYS BE 12"
  98. 1070 PRINT:PRINT"[158]NUMBER OF PERIODS SHOULD ALSO BE 12 "
  99. 1080 PRINT:PRINT"[158]SO THAT CAPITAL CAN BE ADDED ONCE EVERY"
  100. 1090 PRINT:PRINT"[158]YEAR. THESE ARE LEFT OPEN FOR EXPERIMENT."
  101. 1100 PRINT"[154]":RETURN
  102.